
/*--------------------------------------------------------------------------

  マップコマンドにバックログ

■概要
　マップコマンドの中にバックログというコマンドが追加されます


修正内容
18/05/14　新規作成
19/10/13　バックログなしの状態でバックログを開き、決定キーを押すとエラー落ちするバグを修正

■対応バージョン
　SRPG Studio Version:1.205


■規約
・利用はSRPG Studioを使ったゲームに限ります。
・商用・非商用問いません。フリーです。
・加工等、問題ありません。どんどん改造してください。
・クレジット明記無し　OK
・再配布、転載　OK
・SRPG Studio利用規約は遵守してください。
  
--------------------------------------------------------------------------*/
(function() {


//-----------------------------
// 設定
//-----------------------------
var MAPBACKLOG_UNDER_INDEX    = true;			// マップコマンドの下から登録するか（true:下からn番目に登録 false:上からn番目に登録）
var MAPBACKLOG_MANUAL_INDEX   = 0;				// マップコマンドの登録位置（n番目）
var MAPBACKLOG_COMMAND_NAME   = 'Message Backlog';	// コマンド名




//---------------------------------------
// MapCommandクラス（マップコマンド）
//---------------------------------------
var alias1 = MapCommand.configureCommands;
MapCommand.configureCommands = function(groupArray) {
	alias1.call(this, groupArray);
	
	if( MAPBACKLOG_UNDER_INDEX != true ) {
		// コマンドの上からn番目に登録する
		groupArray.insertObject(MapCommand.MapBacklog, MAPBACKLOG_MANUAL_INDEX);
	}
	else {
		// コマンドの下からn番目に登録する
		groupArray.insertObject(MapCommand.MapBacklog, (groupArray.length-1) - MAPBACKLOG_MANUAL_INDEX);
	}
};




//---------------------------------------
// MapCommand.MapBacklogクラス
//---------------------------------------
MapCommand.MapBacklog = defineObject(BaseListCommand,
{
	_mapCommandbacklogWindow: null,

	openCommand: function() {
		this._mapCommandbacklogWindow = createWindowObject(MapCommandBacklogWindow);
		this._mapCommandbacklogWindow.setWindowData();
	},
	
	moveCommand: function() {
		return this._mapCommandbacklogWindow.moveWindow();
	},
	
	drawCommand: function() {
		var x = LayoutControl.getCenterX(-1, this._mapCommandbacklogWindow.getWindowWidth());
		var y = LayoutControl.getCenterY(-1, this._mapCommandbacklogWindow.getWindowHeight());
		
		this._mapCommandbacklogWindow.drawWindow(x, y);
	},
	
	getCommandName: function() {
		return MAPBACKLOG_COMMAND_NAME;
	}
}
);




//---------------------------------------
// MapCommandBacklogWindowクラス
//---------------------------------------
var MapCommandBacklogWindow = defineObject(BacklogWindow,
{
	moveWindowContent: function() {
		var input = this._scrollbar.moveInput();
		
		if( input == ScrollbarInput.CANCEL ) {
			this._playWindowCancelSound();
			return MoveResult.END;
		}
		return MoveResult.CONTINUE;
	},
	
	_playWindowCancelSound: function() {
		MediaControl.soundDirect('commandcancel');
	}
}
);




//---------------------------------------
// BacklogScrollbarクラス
//---------------------------------------
var alias10 = BacklogScrollbar.playSelectSound;
BacklogScrollbar.playSelectSound= function() {
		// バックログ無しの場合そのまま終了
		if( this._objectArray.length === 0 ) {
			return;
		}
		
		alias10.call(this);
}


})();
